Bug 589336 – Add GtkTreeViewColumn:sort-column-id property
authorPhilip Withnall <philip@tecnocode.co.uk>
Sat, 25 Jul 2009 16:46:09 +0000 (17:46 +0100)
committerPhilip Withnall <philip@tecnocode.co.uk>
Sun, 26 Jul 2009 09:52:30 +0000 (10:52 +0100)
Add the property, change notifications and documentation stubs.

docs/reference/gtk/tmpl/gtktreeviewcolumn.sgml
gtk/gtktreeviewcolumn.c

index 74127071060c891ebf75ffa80e3f0ebb8467b5c3..96cb94b98e4662d4fa507931f2ca5859c5e55186 100644 (file)
@@ -112,6 +112,11 @@ calling gtk_tree_view_column_set_cell_data_func()
 
 </para>
 
+<!-- ##### ARG GtkTreeViewColumn:sort-column-id ##### -->
+<para>
+
+</para>
+
 <!-- ##### ARG GtkTreeViewColumn:sort-indicator ##### -->
 <para>
 
index d3259d0f64a2a238339b0207028ac5fe21ebb2cd..edec5deffedde0d5540deeb79de1811636d073cf 100644 (file)
@@ -51,7 +51,8 @@ enum
   PROP_ALIGNMENT,
   PROP_REORDERABLE,
   PROP_SORT_INDICATOR,
-  PROP_SORT_ORDER
+  PROP_SORT_ORDER,
+  PROP_SORT_COLUMN_ID
 };
 
 enum
@@ -325,7 +326,24 @@ gtk_tree_view_column_class_init (GtkTreeViewColumnClass *class)
                                                       GTK_TYPE_SORT_TYPE,
                                                       GTK_SORT_ASCENDING,
                                                       GTK_PARAM_READWRITE));
-  
+
+  /**
+   * GtkTreeViewColumn:sort-column-id:
+   *
+   * Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header
+   * clickable. Set to %-1 to make the column unsortable.
+   *
+   * Since: 2.18
+   **/
+  g_object_class_install_property (object_class,
+                                   PROP_SORT_COLUMN_ID,
+                                   g_param_spec_int ("sort-column-id",
+                                                     P_("Sort column ID"),
+                                                     P_("Logical sort column ID this column sorts on when selected for sorting"),
+                                                     -1,
+                                                     G_MAXINT,
+                                                     -1,
+                                                     GTK_PARAM_READWRITE));
 }
 
 static void
@@ -497,6 +515,11 @@ gtk_tree_view_column_set_property (GObject         *object,
                                            g_value_get_enum (value));
       break;
       
+    case PROP_SORT_COLUMN_ID:
+      gtk_tree_view_column_set_sort_column_id (tree_column,
+                                               g_value_get_int (value));
+      break;
+      
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -595,6 +618,11 @@ gtk_tree_view_column_get_property (GObject         *object,
                         gtk_tree_view_column_get_sort_order (tree_column));
       break;
       
+    case PROP_SORT_COLUMN_ID:
+      g_value_set_int (value,
+                       gtk_tree_view_column_get_sort_column_id (tree_column));
+      break;
+      
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2381,6 +2409,7 @@ gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
       gtk_tree_view_column_set_sort_order (tree_column, GTK_SORT_ASCENDING);
       gtk_tree_view_column_set_sort_indicator (tree_column, FALSE);
       gtk_tree_view_column_set_clickable (tree_column, FALSE);
+      g_object_notify (G_OBJECT (tree_column), "sort-column-id");
       return;
     }
 
@@ -2393,6 +2422,7 @@ gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
                                                          NULL);
 
   gtk_tree_view_column_setup_sort_column_id_callback (tree_column);
+  g_object_notify (G_OBJECT (tree_column), "sort-column-id");
 }
 
 /**